/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package br.ufba.lasid.virt;

import java.util.List;

/**
 *
 * @author aliriosa
 */
public interface IHypervisor {

    public void connect() throws HypervisorException;

    public int disconnect() throws HypervisorException;

    public void startup(String virtualMachineID) throws HypervisorException;

    public void shutdown(String virtualMachineID) throws HypervisorException;

    public List<VirtualMachine> getVirtualMachines() throws HypervisorException;

    public void setVirtualMachines(List<VirtualMachine> virtualMachines) throws HypervisorException;

    public void configureVirtualMachines() throws HypervisorException;

    public VirtualMachine getVirtualMachine(String virtualMachineID);

    public VirtualMachine getVirtualMachine();

    public void setVirtualMachine(String virtualMachineID);

    public void migrate(int idToMigrate, String locationURI) throws HypervisorException;

    public VirtualMachine newVMInstanceFromXMLFile(String xmlFile);

    public VirtualMachine newVMInstance(String xmlString);

    public void destroyVMInstance(String vmInstance);

    public void destroyVMInstance(VirtualMachine virtualMachine);

    public String getName();

    public String getURI();

    public void setURI(String URI);
}
